using System.IO;
using System.Threading.Tasks;
using Book.Blog.Core.DTOs;

namespace Book.Blog.Core.Interfaces
{
    public interface IFileStorageService
    {
        Task<FileUploadResultDTO> SaveFileAsync(Stream fileStream, string fileName, string contentType, FileUploadOptionsDTO? options = null);
        Task<ImageUploadResultDTO> SaveImageAsync(Stream imageStream, string fileName, string contentType, FileUploadOptionsDTO? options = null);
        Task DeleteFileAsync(string fileUrl);
        string GetFileUrl(string fileName, string? directory = null);
    }
} 